package cn.cdeden.sys.factory;

import cn.cdeden.sys.domain.SysParametersConfig;
import cn.cdeden.sys.domain.dto.SysParametersConfigDto;
import cn.cdeden.sys.enums.SysConfigDefaultEnums;
import cn.cdeden.sys.enums.SysParametersConfigEnums;
import cn.cdeden.sys.service.SysParametersQueryConfigService;
import cn.cdeden.sys.utils.domain.UserLoginInfo;
import com.alibaba.fastjson.JSONArray;
//import com.cdyd.ecm.sys.domain.SysParametersConfig;
//import com.cdyd.ecm.sys.domain.dto.SysParametersConfigDto;
//import com.cdyd.ecm.sys.enums.SysConfigDefaultEnums;
//import com.cdyd.ecm.sys.enums.SysParametersConfigEnums;
//import com.cdyd.ecm.sys.service.SysParametersQueryConfigService;
//import com.cdyd.ecm.sys.utils.domain.UserLoginInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @ProjectName : ecm_svn
 * @Package : com.cdyd.ecm.sys.factory
 * @ClassName : FollowUpLoginConfig
 * @Author : Yu.
 * @Description : // TODO
 * @Date : 2024/4/23 16:14
 * @Version : 1.0
 */
@RequiredArgsConstructor
@Component("sys_LoginWay")
public class FollowUpLoginWayConfig implements FollowUpMethod {


    private final SysParametersQueryConfigService sysConfigService;

//    private final SysParametersConfigService sysConfigService;
    private final static String adStatus = SysConfigDefaultEnums.ad_domain_status.getConfigCode();
    private final static String wxStatus = SysConfigDefaultEnums.wx_login_status.getConfigCode();
    private final static String OAuthStatus = SysConfigDefaultEnums.OAuth_enable.getConfigCode();
    private final static String integration = SysParametersConfigEnums.SYS_INTEGRATION_CONFIG.getCode();
//TODO 去掉了@Override

    //    @Override
    public void sysConfigFollowUp(SysParametersConfigDto resources) {

        String configValue = resources.getConfigValue();

        List<String> strings = JSONArray.parseArray(configValue, String.class);
        UserLoginInfo userLoginInfo = new UserLoginInfo(strings,null);

        boolean ad = userLoginInfo.isAd(); //ad的是否开启
        boolean wxscan = userLoginInfo.isWxscan(); //企业微信是否开启
        boolean OAuth = userLoginInfo.isOAuth(); //企业微信是否开启

        //修改ad域
        sysConfigService.lambdaUpdate()
                .eq(SysParametersConfig::getConfigCode, adStatus)
                .eq(SysParametersConfig::getConfigType,integration)
                .set(SysParametersConfig::getConfigValue,String.valueOf(ad))
                .update();
        //修改企业微信
        sysConfigService.lambdaUpdate()
                .eq(SysParametersConfig::getConfigCode, wxStatus)
                .eq(SysParametersConfig::getConfigType,integration)
                .set(SysParametersConfig::getConfigValue,String.valueOf(wxscan))
                .update();

        //修改OA系统
        sysConfigService.lambdaUpdate()
                .eq(SysParametersConfig::getConfigCode, OAuthStatus)
                .eq(SysParametersConfig::getConfigType,integration)
                .set(SysParametersConfig::getConfigValue,String.valueOf(OAuth))
                .update();


//        删除缓存
        //ad域
        sysConfigService.deleteRedisInfo(adStatus, integration);
        //企业微信
        sysConfigService.deleteRedisInfo(wxStatus, integration);
        //OA系统
        sysConfigService.deleteRedisInfo(OAuthStatus, integration);



    }




}
